package pt.ipleiria.estg.dei.ei.es2.bio;

import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.test.ActivityInstrumentationTestCase2;
import android.widget.TextView;

import com.robotium.solo.Solo;

/**
 * Created by Vitor on 05/03/2015.
 */
public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActivity> {

    private Solo solo;

    public MainActivityTest(){
        super(MainActivity.class);
    }

    @Override
    public void setUp() throws Exception{
        solo = new Solo(getInstrumentation(), getActivity());
    }

    @Override
    public void tearDown() throws Exception{
        solo.finishOpenedActivities();
    }

    public void goToConfirmationDialog(){
        solo.unlockScreen();
        solo.clickOnActionBarItem(R.id.action_checkin);
    }

    /*Dado que estou na aplicação, Quando pressiono o botão "I'm here" e as
    informações do meu contacto estão preenchidas (pelo menos nome e email),
    Então deve ser-me exibida uma mensagem de confirmação da activação desta
    funcionalidade.*/

    public void testConfirmationDialog() throws Exception{
        goToConfirmationDialog();
        assertTrue("------ Não foi encontrado o título de AlertDialog! ------", solo.searchText(getActivity().getString(R.string.confirmationTitle)));
    }

    /*Dado que estou na mensagem de confirmação da funcionalidade "I'm here",
    Quando pressiono no botão "Sim" e tenho rede, Então os meus dados devem
    ser submetidos e partilhados com os restantes participantes que activaram a
    funcionalidade "I'm here" e o botão deve mudar para o estado activo.*/

    public void testCheckIn() throws Exception{
        goToConfirmationDialog();
        solo.clickOnButton(getActivity().getString(R.string.okBtn));
        solo.waitForActivity(ParticipantsList.class, 3000);
        solo.assertCurrentActivity("-- Não foi para a lista de participantes! --", ParticipantsList.class);

        //Verifica se o icon mudou para o grupo

        TextView v = (TextView)getActivity().findViewById(R.id.action_checkin);
        Bitmap expected = ((BitmapDrawable)getActivity().getDrawable(R.drawable.ic_action_group)).getBitmap();
        Bitmap actual = ((BitmapDrawable)v.getCompoundDrawables()[0]).getBitmap();

        assertTrue("-- Icon não mudou! --",actual.sameAs(expected));
    }
}
